A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyrights whatsoever.
A computer program listing appendix containing computer program listings of a template and associated documentation in a file named xe2x80x9cProgramListing.txtxe2x80x9d having a file size of 59 KB and created on Jun. 13, 2003 from a Previously submitted microfiche is submitted with this application and is incorporated herein by reference.
The present invention is directed, in general, to real-time process control systems and, more specifically, to a system and method for constructing an Object Linking and Embedding (OLE) for Process Control (OPC) compliant data server from a noncompliant user application and a real-time process control system employing the system or method.
Real-time process control systems were first implemented within a single computer system. As the need to monitor and control more physical devices increased, the complexity and size of the process control systems also increased. Shortly thereafter, single computer real-time process control systems were unable to process all the information within a timely manner as required by the real-time process control environments.
To correct this processing problem, real-time process control systems evolved into multiple computer systems that were connected to each other with proprietary communication interfaces. The multiple computer systems processed data locally and then communicated the information to the other computer systems over the proprietary communication interfaces. Since, the computer systems did not use a standard communication interface nor a standard protocol between each of the computer systems, modifications and additions to the systems were difficult, if not impossible.
This inter-computer incompatibility problem was resolved when the computer industry developed standardized networks and network protocols. Two of the industry standards were Ethernet and Transmission Control Protocol/Internet Protocol (xe2x80x9cTCP/IPxe2x80x9d) used on 10 base 2 coaxial cable. Ethernet and TCP/IP allowed various computer systems the ability to communicate to each other without using proprietary communication interfaces.
The next evolution in real-time process control systems was object oriented distributed processing. In object oriented distributed processing, requesting programs (xe2x80x9cclientsxe2x80x9d) would call resource programs (xe2x80x9cobjectsxe2x80x9d) to process a request. In this design, the clients and objects may be located on different computers on the network or are on the same computer. To facilitate a standardized way for clients to locate and communicate with objects, Microsoft Corporation developed the Component Object Model (xe2x80x9cCOMxe2x80x9d) protocol. The COM protocol, incorporated into software libraries called xe2x80x9cCOM libraries,xe2x80x9d defines a standardized interface for locating and communicating to objects over the network without requiring the clients to know the location of the desired objects.
The process control industry incorporated the COM standard and Object Linking and Embedding (xe2x80x9cOLExe2x80x9d) in its real-time process control standard, calling the resulting standard OLE for Process Control (xe2x80x9cOPCxe2x80x9d). The OPC standard defined the interfaces for distributed real-time process control object processing.
For companies to sell real-time process control systems, the real-time process control systems had to be COM and OPC compliant. This required the developers of the systems to have learned the intricacies of the COM and the OPC standards. Next, the programmers had to write detailed software programs that implemented the COM standards. Then, the programmers had to write detailed software programs that implemented the OPC standards which incorporated the COM standards. Finally, the programmers had to repeat this process for each type of distributed object processing that was performed within the real-time process control system.
When the programmers found an incorrect implementation of the COM and the OPC standards, the programmers had to correct each software program that was affected. This whole process incurred a great amount of time and expense. What is needed in the art is a way to rapidly develop COM/OPC compliant software for real-time process control systems.
To address the above-discussed deficiencies of the prior art, the present invention provides a system for, and method of, constructing an OPC compliant data server from a device-specific noncompliant user application and a real-time process control system employing the system or the method. In one embodiment, the system includes: (1) a generic OPC compliant interface object and (2) a template associated with the generic OPC compliant interface object. The template is modifiable and combinable with a device-specific interface portion to yield the device-specific noncompliant user application. The device-specific noncompliant user application is dynamically linkable with and aggregates with the generic OPC compliant interface object to yield the OPC compliant data server.
The present invention therefore introduces the broad concept of dividing an OPC compliant data server into two distinct portions: a first portion that is generic and OPC compliant and a second portion that is specific to an underlying device or process control system and does not need to be entirely OPC compliant. A user wishing to create an OPC compliant data server is merely required to customize a template to yield the second portion. During run-time, the first and second portions are dynamically linked. The second portion aggregates the first, allowing the noncompliant second portion to inherit at least some of the attributes of the compliant first portion.
In one embodiment of the present invention, the system further includes a class factory that creates multiple related instances of objects. In a related embodiment, the class factory creates objects and manages global resources with respect to the objects. Those skilled in the pertinent art are familiar with class factories and their use in other object-oriented environments. The present invention can employ class factories to instantiate the objects needed to enable a particular server.
In one embodiment of the present invention, the system further includes a cache memory associated with the generic OPC compliant interface object. The generic OPC compliant interface object retrieves items from the cache memory in response to requests from multiple OPC clients. In a related embodiment, the generic OPC compliant interface object retrieves information from a device through the device-specific noncompliant user application and stores the information in the cache memory.
In one embodiment of the present invention, the class factory is capable of self-registration. However, the present invention need not be capable of self-registration.
In one embodiment of the present invention, the generic OPC compliant interface object is Component Object Module (COM) compliant. Those skilled in the pertinent art will perceive, however, that the present invention may be employed to advantage in object-oriented environments that are not COM-compliant.
The foregoing has outlined, rather broadly, preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.